通用远程升级功能,包括模组升级和MCU应用升级两类,待升级的设备通过HTTP协议RESTful标准格式与物联网平台进行数据交互以完成升级。
南向设备目前所需的RESTful API一共有三类:检测任务、拉取文件、上报状态,其中拉取文件包括校验TOKEN和获取文件两个API。
本页内容介绍的是API的使用以及通过postman模拟器测试拉取固件的过程。
本文档适用于使用物联网平台进行通用OTA功能操作的设备侧操作相关人员。
此处采用Python来计算产品Authorization,实际操作时更改产品ID和Product Secret即可,具体过程参考API鉴权,Python代码。
计算出来的鉴权参数为:
version=2018-10-31&res=products%2F245528&et=7559008892&method=sha1&sign=TPllhakDDnUV90epLnOqpj6aWqI%3D
http://{{ota.heclouds.com}}/ota/south/check?dev_id=527776559&manuf=102&model=10201&type=2&version=V1&cdn=false
Headers的参数Authorization:value为计算出来的产品token。
manuf=102&model=10201这两个参数参考下面的表格。 dev_id=527776559修改为需要升级的设备id。 其他参数不改变。
芯片平台 | 芯片型号 | 厂商编号 | 芯片编号 |
---|---|---|---|
乐鑫 | ESP32 | 101 | 10101 |
nordic | nrf52832 | 102 | 10201 |
兆易 | GD32 | 103 | 10301 |
其他 | 其他 | 100 | 10001 |
厂商名称 | 模组型号 | 厂商编号 | 模组编号 |
---|---|---|---|
中国移动 | M5330-A | 001 | 00101 |
中国移动 | M5330 | 001 | 00102 |
中国移动 | M5312 | 001 | 00103 |
中国移动 | M5313 | 001 | 00104 |
中国移动 | S5601 | 001 | 00105 |
中国移动 | M5310-A | 001 | 00106 |
中国移动 | M5310 | 001 | 00107 |
中国移动 | M5311 | 001 | 00108 |
中国移动 | M5330-GNSS | 001 | 00109 |
中国移动 | M5330-STD | 001 | 00110 |
零零智能 | N256 | 002 | 00201 |
利尔达 | NB86-G | 003 | 00301 |
利尔达 | NB08-01 | 003 | 00302 |
u-blox | SARA-N200 | 004 | 00401 |
锐捷网络 | RG-NB6118 | 005 | 00501 |
锐捷网络 | RG-NB6210 | 005 | 00502 |
上海稳恒 | WH-NB71 | 006 | 00601 |
上海稳恒 | WH-NB73 | 006 | 00602 |
信位通讯 | SN12_B8 | 007 | 00701 |
中兴通讯 | ZM8300 | 008 | 00801 |
中兴通讯 | ZM8301 | 008 | 00802 |
有方科技 | N20 | 009 | 00901 |
普创天信 | T1 | 010 | 01001 |
普创天信 | T101 | 010 | 01002 |
普创天信 | T106 | 010 | 01003 |
桑锐电子 | NH01A | 011 | 01101 |
芯讯通 | SIM7000C | 012 | 01201 |
芯讯通 | SIM7000C-N | 012 | 01202 |
芯讯通 | SIM7020C | 012 | 01203 |
芯讯通 | SIM7030 | 012 | 01204 |
移柯通信 | L620 | 013 | 01301 |
移远通信 | BC28 | 014 | 01401 |
移远通信 | BC68 | 014 | 01402 |
移远通信 | BC35-G | 014 | 01403 |
移远通信 | BC95-G | 014 | 01404 |
移远通信 | BC26 | 014 | 01405 |
移远通信 | BC95-B8 | 014 | 01406 |
云程科技 | CFB-608-B8 | 015 | 01501 |
云程科技 | CFB-609 | 015 | 01502 |
骐俊物联 | ML5530 | 016 | 01601 |
广和通 | N700-CN | 017 | 01701 |
东信和平 | NBM20 | 018 | 01801 |
吴通集团 | WT208 | 019 | 01901 |
高新兴物联 | ME3616 | 020 | 02001 |
新华三 | IM2209 | 021 | 02101 |
中科联合 | CT-M201 | 022 | 02201 |
中科联合 | CT-M202 | 022 | 02202 |
四川爱联 | AI-NB15 | 023 | 02301 |
九联科技 | UNB100-G | 024 | 02401 |
朝歌科技 | S-ModNB00A | 025 | 02501 |
小瑞科技 | N100 | 026 | 02601 |
中怡数宽 | TPB23 | 027 | 02701 |
中怡数宽 | TPB40-8 | 027 | 02702 |
中怡数宽 | TPB41 | 027 | 02703 |
光宝科技 | WNB301H | 028 | 02801 |
欧智通 | 3115F-R | 029 | 02901 |
龙尚科技 | A9600-R2 | 030 | 03001 |
灵慧科技 | LT150 | 031 | 03101 |
其他 | 其他 | 000 | 00001 |
示例的请求响应的代码如下:
{
"errno": 0,
"error": "succ",
"data": {
"target": "V1",
"token": "ota_iF0hnXrq2CxLrP8vZ39l",
"size": 22,
"md5": "ad2f4e4ea2a27eace7e4913139f8f01a",
"signal": 10,
"power": 50,
"retry": 0,
"interval": 0,
"type": 1
}
}
校验TOKEN使用说明和响应信息请参考OTA-SDK说明文档。
http://{{ota.heclouds.com}}/ota/south/download/ota_iF0hnXrq2CxLrP8vZ39l/check?dev_id=527776559
Headers的参数Authorization:value为上面计算出来的产品token。
Body内容为:
{
"result": 201
}
result:
101:升级包下载成功 102:下载失败,空间不足 103:下载失败,内存溢出 104:下载失败,下载请求超时 105:下载失败,电量不足 106:下载失败,信号不良 107:下载失败,未知异常 201:升级成功 202:升级失败,电量不足 203:升级失败,内存溢出 204:升级失败,版本不一致 205:升级失败,md5校验失败 206:升级失败,未知异常
error:
0:上报状态成功 1:上报状态失败,token鉴权失败 2:上报状态失败,状态码有误 20:上报状态失败,升级任务已经完成 21:无效的操作 22:上报状态失败,升级任务已被取消 24:请求内容result错误
说明
dev_id=527776559修改为需要升级的设备id。 ota_iF0hnXrq2CxLrP8vZ39l为鉴权参数步骤获取到的任务token。 其他参数不改变。
需要替换成实际地址
拉取文件使用说明和响应信息如下。
http://{{ota.heclouds.com}}/ota/south/download/ota_iF0hnXrq2CxLrP8vZ39l
ota_iF0hnXrq2CxLrP8vZ39l为鉴权参数步骤获取到的任务token,其他参数不改变。 可以拉取整个文件。
也可以拉取部分文件。
头部Range字段解释:
Range: bytes={start}-{end}
目前只支持如下几种模式
(1) Range: bytes={start}-,获取第{start}+1个字节到最后的数据 例如:Range: bytes=0-,获取所有数据; Range: bytes=2-,获取第3个数据到最后1个数据; 注意:如果{start}>=文件总长度,则默认{start}=0 。
(2) Range: bytes={start}-{end},获取第{start}+1个字节到第{end}+1个字节 例如:Range: bytes=0-99,获取前100个字节; 注意:若{end}>=文件总长度len,则默认end=len-1; 若{start}>{end},start被设置为0。
(3) Range: bytes=-{end},获取最后end个字节数据 例如:Range: bytes=-100,获取最后100个字节数据; 注意:如果{end}>文件总长度len,则默认end=len(获取所有文件)。
分片状态码
分片返回的状态码:206 不分片返回的状态码:200
上报状态使用说明和响应信息如下。
http://{{ota.heclouds.com}}/ota/south/report?dev_id=527776559&token=ota_iF0hnXrq2CxLrP8vZ39l
Headers的参数Authorization:value为上面计算出来的产品token。
Body内容为:
{
"result": 201
}
result:
101:升级包下载成功 102:下载失败,空间不足 103:下载失败,内存溢出 104:下载失败,下载请求超时 105:下载失败,电量不足 106:下载失败,信号不良 107:下载失败,未知异常 201:升级成功 202:升级失败,电量不足 203:升级失败,内存溢出 204:升级失败,版本不一致 205:升级失败,md5校验失败 206:升级失败,未知异常
error:
0:上报状态成功 1:上报状态失败,token鉴权失败 2:上报状态失败,状态码有误 20:上报状态失败,升级任务已经完成 21:无效的操作 22:上报状态失败,升级任务已被取消 24:请求内容result错误
说明
dev_id=527776559修改为需要升级的设备id。 ota_iF0hnXrq2CxLrP8vZ39l为鉴权参数步骤获取到的任务token。 其他参数不改变。
上报升级成功状态后,平台会显示任务状态为完成。